#include "user.h"

void IOWrite(GPIO_TypeDef *Port, uint32_t Pin, uint8_t Value)
{
	if (!Port || !Pin)
	{
		return;
	}
	if (Value)
	{
		LL_GPIO_SetOutputPin(Port, Pin);
	}
	else
	{
		LL_GPIO_ResetOutputPin(Port, Pin);
	}
}

uint8_t IORead(GPIO_TypeDef *Port, uint32_t Pin, uint8_t *IsError)
{
	if (!Port || !Pin)
	{
		if (IsError)
		{
			*IsError = 1;
		}
		return 0;
	}
	if (LL_GPIO_MODE_OUTPUT != LL_GPIO_GetPinMode(Port, Pin))
	{
		return LL_GPIO_IsInputPinSet(Port, Pin);
	}
	else
	{
		return LL_GPIO_IsOutputPinSet(Port, Pin);
	}
}
